查看原文
其他

以吃货的角度理解 IaaS,PaaS,SaaS 是什么?

2018-03-08
点击上方“Hollis”关注我,精彩内容第一时间呈现。

全文字数:   1100

阅读时间:  3分钟

本文转载自博客:阮一峰的网络日志(http://www.ruanyifeng.com/


随着云计算时代的到来,越来越多的软件,开始采用云服务。越来越多的概念也随之而来。云服务只是一个统称,可以分成三大类。



IaaS:基础设施服务,Infrastructure-as-a-service

PaaS:平台服务,Platform-as-a-service

SaaS:软件服务,Software-as-a-service


它们有什么区别呢?

IBM 的软件架构师 Albert Barron 曾经使用披萨作为比喻,解释这个问题。David Ng 进一步引申,让它变得更准确易懂。

请设想你是一个餐饮业者,打算做披萨生意。



你可以从头到尾,自己生产披萨,但是这样比较麻烦,需要准备的东西多,因此你决定外包一部分工作,采用他人的服务。你有三个方案。


方案一:IaaS


他人提供厨房、炉子、煤气,你使用这些基础设施,来烤你的披萨。


方案二:PaaS


除了基础设施,他人还提供披萨饼皮。

你只要把自己的配料洒在饼皮上,让他帮你烤出来就行了。也就是说,你要做的就是设计披萨的味道(海鲜披萨或者鸡肉披萨),他人提供平台服务,让你把自己的设计实现。

方案三:SaaS

他人直接做好了披萨,不用你的介入,到手的就是一个成品。你要做的就是把它卖出去,最多再包装一下,印上你自己的 Logo。

上面的三种方案,可以总结成下面这张图。

从左到右,自己承担的工作量(上图蓝色部分)越来越少,IaaS > PaaS > SaaS。


对应软件开发,则是下面这张图。


SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即用。普通用户接触到的互联网服务,几乎都是 SaaS,下面是一些例子。

客户管理服务 Salesforce

团队协同服务 Google Apps

储存服务 Box

储存服务 Dropbox

社交服务 Facebook / Twitter / Instagram


PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层。下面这些都属于 PaaS。

Heroku

Google App Engine

OpenShift


IaaS 是云服务的最底层,主要提供一些基础资源。它与 PaaS 的区别是,用户需要自己控制底层,实现基础设施的使用逻辑。下面这些都属于 IaaS。

Amazon EC2

Digital Ocean

RackSpace Cloud


参考链接

SaaS, PaaS and IaaS explained in one graphic, by David Ng

When to use SaaS, PaaS, and IaaS, by Eamonn Colman


推荐阅读

Eclipse的Debug介绍与技巧

GitHub遭受的DDoS攻击到底是个什么鬼?

各大互联网公司架构演进之路汇总

大型网站架构演化历程


如果你看到了这里,说明你喜欢本文。

那么请长按二维码,关注Hollis

长按二维码关注

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存